
import axios from 'axios'

// 创建 axios 实例
const service = axios.create({
  // baseURL 项目的基准地址
  // vue-cli --> webpack --> node
  // process --> 是node中的环境变量
  // process.env ---> 获取当前用户的环境变量信息
  // VUE_APP_BASE_API ---> 则是项目的根域名
  // 开发环境 --> 就是目前我们代码的环境 -->development
  // 生产环境 ---> 就是项目上线以后运行的环境-->production
  // 当运行 npm run dev 时候 会解析 .env.development 这个文件
  // 当我们运行npm run build 时候 会解析 .env.production 这个文件
  // 取出其中定义变量 集成到项目中使用即可
  baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
  //
  // 请求超时 当我们请求以个地址 超过5000毫秒以后 还没返回就报错
  timeout: 5000 // request timeout
})

// 请求拦截器
service.interceptors.request.use(config => {
  return config
},
error => {
  // do something with request error
  console.log(error) // for debug
  return Promise.reject(error)
}
)

// 响应拦截器
// 如果使用 axios 发起请求 会将返回的数据包装一层
service.interceptors.response.use(response => {
  return response
},
error => {
  return Promise.reject(error)
}
)

export default service

// // 请求拦截器
// service.interceptors.request.use(
//   config => {
//     // do something before request is sent

//     if (store.getters.token) {
//       // 判断是否存在token 如果存在token 添加请求头
//       config.headers['X-Token'] = getToken()
//     }
//     return config
//   },
//   error => {
//     // do something with request error
//     console.log(error) // for debug
//     return Promise.reject(error)
//   }
// )

// // 响应拦截器
// // 如果使用 axios 发起请求 会将返回的数据包装一层
// service.interceptors.response.use(
//   response => {
//     // 接收后端真正返回的数据
//     const res = response.data
//     return res
//   },
//   error => {
//     console.log('err' + error) // for debug
//     Message({
//       message: error.message,
//       type: 'error',
//       duration: 5 * 1000
//     })
//     return Promise.reject(error)
//   }
// )
